#pragma once
#include <pcl/point_cloud.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
//#include <pcl_ros/point_cloud.h>
#include <pcl_conversions/pcl_conversions.h>
#include <pcl/common/common.h>
#include <pcl/common/transforms.h>

// #include <pcl/filters/voxel_grid.h>
// //#include <pcl/octree/octree.h>
// #include <pcl/kdtree/kdtree_flann.h>
//#include <Eigen/Eigen>

void move_single_point(pcl::PointCloud<pcl::PointXYZ> &source_point,pcl::PointCloud<pcl::PointXYZ> &dscloud);
void move_stable_point(pcl::PointCloud<pcl::PointXYZ> &cloud,pcl::PointCloud<pcl::PointXYZ> &dscloud);
void seat_transform(pcl::PointXYZ seat,double wz,
                pcl::PointCloud<pcl::PointXYZ> &cloud,
                pcl::PointCloud<pcl::PointXYZ> &dscloud);
void move_st_point(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud,pcl::PointCloud<pcl::PointXYZ>::Ptr dscloud);                